The number of available models of smartphones and tablet computing devices has grown exponentially during the last few years. For example, in the last several years, the number of available smartphone models has grown significantly. Similar growth has also occurred in the number of available models of tablet devices. Other types of mobile computing devices have also shown significant growth.
The various models of smartphones, tablets, and other mobile computing devices described above frequently have different hardware configurations, even when the devices are configured to execute the same operating system. For example, different smartphone models that utilize the same operating system might include different processors, different amounts of memory, and different peripheral devices, such as cameras, global positioning system (“GPS”) sensors, and others. These devices might also include significant variations in software configurations. For example, some models might be configured with different versions of the same operating system and/or with different software installed on the devices by the manufacturers of the devices.
Systems exist that allow programs to be tested on a variety of network-accessible computing devices. However, these systems are limited in the number of program testing frameworks that they can support. As a result, software developers commonly utilize these types of testing systems only late in the program development lifecycle. Moreover, because these systems limit the number of testing frameworks that can be utilized, programs might not be tested as thoroughly as if the devices used for testing were connected directly to a developer computing device where more program testing frameworks can be utilized. As a result, a program tested by a developer using previous network-based device testing systems might not execute optimally on all devices upon which it is executed. A program that does not execute optimally can unnecessarily consume significant computing resources such as, but not limited to, processor cycles, memory, mass storage, and battery power.
The disclosure made herein is presented with respect to these and other considerations.